
// <copyright file="AbstractRequest.cs" company="Subhadra Software Solutions">
//   
// </copyright>
// <summary>
//   The abstract request.
// </summary>

namespace SubhadraSolutions.Sharp.Utils.RequestProcessing
{
    using System;
    using System.Runtime.Serialization;

    /// <summary>
    /// The abstract request.
    /// </summary>
    [Serializable]
    [DataContract]
    public abstract class AbstractRequest : IRequest
    {
        #region Fields

        /// <summary>
        ///     The request identifier
        /// </summary>
        private string requestId = Guid.NewGuid().ToString();

        #endregion Fields

        #region Public Properties

        /// <summary>
        ///     Gets or sets the request id.
        /// </summary>
        [DataMember]
        public virtual string RequestId
        {
            get
            {
                return this.requestId;
            }

            set
            {
                this.requestId = value;
            }
        }

        #endregion Public Properties
    }
}